Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

one-time

Package Overview
Dependencies
Maintainers
3
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

one-time

Run the supplied function exactly one time (once)

  • 0.0.4
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9.7M
increased by12.71%
Maintainers
3
Weekly downloads
 
Created
Source

one-time

Made by unshiftVersion npmBuild StatusDependenciesCoverage StatusIRC channel

Call the supplied function exactly one time. This prevents double callback execution. This module can be used on both node and browsers using browserify. No magical ES5/6 methods used unlike the once module does.

Installation

npm install one-time

Usage

Simply supply the function with the function that should only be called one time:

var one = require('one-time');

function load(file, fn) {
  fn = one(fn);

  eventemitter.once('load', fn);
  eventemitter.once('error', fn);

  // do stuff
  eventemitter.emit('error', new Error('Failed to load, but still finished'));
  eventemitter.emit('load');
}

function example(fn) {
  fn = one(fn);

  fn();
  fn('also receives all arguments');
  fn('it returns the same value') === 'bar';
  fn('never');
  fn('gonna');
  fn('give');
  fn('you');
  fn('up');
}

example(function () { 
  return 'bar'
});

Why not once?

The main reason is that once cannot be used in a browser environment unless it's ES5 compatible. For a module as simple as this I find that unacceptable. In addition to that it super heavy on the dependency side. So it's totally not suitable to be used in client side applications.

In addition to that we make sure that your code stays easy to debug as returned functions are named in the same way as your supplied functions. Making heap inspection and stacktraces easier to understand.

License

MIT

Keywords

FAQs

Package last updated on 25 Mar 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc